Programmable integrated circuits are a type of integrated circuit that can be configured by a user to implement custom logic functions. In a typical scenario, a logic designer uses computer-aided design (CAD) tools to design a custom logic circuit. When the design process is complete, the CAD tools generate configuration data. The configuration data is loaded into a programmable integrated circuit to configure the device to perform desired logic functions.
In a typical system, a programmable integrated circuit, memory devices, and other electronic components are mounted on a printed circuit board. The programmable integrated circuit includes memory interface circuitry that is used to relay data back and forth between the programmable integrated circuit and the memory devices (i.e., the memory interface circuitry is used to read data from and write data into the memory devices). The memory interface circuitry communicates with the memory devices by issuing memory commands at memory clock cycles of a memory clock.
As memory clock speeds increase, it may be difficult for the memory interface circuitry to relay data back and forth between the programmable integrated circuit and the memory devices. For example, the memory interface circuitry may communicate with the integrated circuit at clock speeds that are lower than the memory clock speeds. In this scenario, the memory interface circuitry can accommodate the mismatch in clock speeds by issuing multiple memory commands during each clock cycle of the integrated circuit. However, due to processing limitations of the memory interface circuitry, it is challenging for the memory interface circuitry to generate and issue multiple memory commands for each integrated circuit clock cycle.